.TH std::ranges::filter_view::sentinel 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::filter_view::sentinel \- std::ranges::filter_view::sentinel

.SH Synopsis
   class /*sentinel*/;  \fI(since C++20)\fP
                        (exposition only*)

   The return type of filter_view::end when the underlying view type (V) does not model
   common_range.

.SH Member functions

   constructor   constructs a sentinel
   (C++20)       \fI(public member function)\fP
   base          returns the underlying sentinel
   (C++20)       \fI(public member function)\fP

std::ranges::filter_view::sentinel::sentinel

   /*sentinel*/() = default;                               \fB(1)\fP \fI(since C++20)\fP
   constexpr explicit /*sentinel*/( filter_view& parent ); \fB(2)\fP \fI(since C++20)\fP

   1) Value-initializes end_ via its default member initializer (=
   ranges::sentinel_t<V>()).
   2) Initializes end_ with ranges::end(parent.base_).

std::ranges::filter_view::sentinel::base

   constexpr ranges::sentinel_t<V> base() const;  \fI(since C++20)\fP

   Equivalent to return end_;.

.SH Non-member functions

   operator== compares the underlying iterator and the underlying sentinel
   (C++20)    \fI(function)\fP

operator==(std::ranges::filter_view::iterator, std::ranges::filter_view::sentinel)

   friend constexpr bool operator==( const /*iterator*/& x,    \fI(since C++20)\fP
                                     const /*sentinel*/& y );

   Equivalent to return x.current_ == y.end_;, where current_ is the underlying
   iterator wrapped in filter_view::iterator.

   The != operator is synthesized from operator==.

   This function is not visible to ordinary unqualified or qualified lookup, and can
   only be found by argument-dependent lookup when std::ranges::filter_view::sentinel
   is an associated class of the arguments.
